Many computer systems such as personal computers are based on the Intel 80.times.86 or Pentium series of microprocessors, or another compatible microprocessor, and are controlled by Microsoft Corporation's Windows 95 (TM), Windows 98 (TM), or Windows NT (TM) operating system software. In such systems, additional peripheral devices such as hard disk drives, CD-ROM drives, printers, modems, memory modules, and so forth are often added and removed by the user.
For example, an extra hard disk may be added to increase storage capacity. The addition of the hard disk is typically performed by powering-off the computer and inserting the extra hard disk into a port designed to accept such a device. The port connects to a bus linking the device to other components in the system. When the system is subsequently powered-on, as the operating system starts up or "reboots", the new hard disk device is detected on the bus and the operating system configures itself and the new device for proper operation with one another and application programs. To remove the hard disk, typically, the power is turned-off and the device is removed from the port. When the operating system subsequently reboots, no configuration for the device takes place due to the absence (i.e., removal) of the device on the bus.
During device configuration in both the Windows 95 and Windows NT (TM) operating systems, the system enumerates each device detected on each bus at system start-up. The enumeration process assigns a unique address or number to each device in order to properly access that device. The system also loads device driver software into memory for each device detected, if a driver is not already present. Device drivers provide the required instructions for proper device operation with the operating system and the applications which access the device.
While typical device installation and removal in personal computer systems is performed with the power turned off, certain computer configurations, such as laptop personal computers, provide the option of coupling the laptop portion (i.e., the main computer) to a docking station. In such scenarios, a fully operational (i.e., fully booted) laptop computer may be inserted or "docked" with a docking station. The docking station includes a separate internal bus and bus controller and may contain one or more devices inserted into device ports on the bus within the docking station.
Upon docking, a powered-up computer operating under the Windows 95 (TM) operating system (but not under the Windows NT (TM) operating system) will recognize a new bus controller and its associated bus and will re-enumerate all devices that are inserted into ports on the new bus in the docking station, but only if the device is present (i.e., is inserted in a port) at the time when the powered-up computer is docked with the docking station. For instance, if an operational laptop is docked with a docking station containing a bus controller device, an inserted floppy disk device and an inserted hard disk device, the Windows 95 (TM) operating system will correctly detect and configure the additional bus controller device, as well as the inserted floppy and hard disk devices, even though the power to the laptop was not reset and the laptop was not re-started. The Windows 95 (TM) operating system will correctly enumerate and load device drivers, if necessary, for each device that is present on the newly added bus and will allow the devices to subsequently operate.
However, once this docking configuration process is complete, any additional devices subsequently inserted into empty ports on the bus in the docking station or into ports on the bus in the main computer itself will not be renumerated and will not have device drivers loaded. The only exception to this is if a new device is attached via another new bus controller that may include another additional bus and/or devices. Essentially, non-bus controller devices such as disk drives, CD-ROM's and so forth that are inserted after start-up of the main computer, or after docking, will be inaccessible by applications and the operating system. To add devices to a Windows 95 operating system after the boot process is complete, the new devices can only be inserted via adding a new bus controller and a new bus at the time of docking.
The Windows 95 (TM) operating system allows device configuration for new devices on a newly added bus only when the new bus is coupled to the system with a separate bus controller device. When a new bus controller device is present, the Windows 95 (TM) operating system can be assured that only a new bus is being added and that reconfiguration of devices on this new bus will not conflict with any currently configured device(s) on another bus. The Windows 95 (TM) operating system does not allow the configuration of a new device on an existing bus of devices due to the potential conflict that may arise between the new device(s) and any existing configured device(s).
The Windows NT (TM) operating system contains no mechanism for renumerating or configuring devices added after boot time, whether in a docking station configuration using a separate new bus and bus controller or not.